package com.nbcio.pm.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.nbcio.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.time.LocalDate;

/**
 * 团队成员对象 pm_team_member
 *
 * @author nbmade
 * @date 2025-01-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("pm_team_member")
public class PmTeamMember extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 团队ID
     */
    private Long teamId;

    /**
     * 用户ID（多个用户用逗号分隔）
     */
    @TableField("user_id")
    private String userId;

    /**
     * 角色ID
     */
    private Long roleId;

    /**
     * 加入时间
     */
    @TableField("join_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate joinDate;

    /**
     * 状态（0禁用 1启用）
     */
    private String status;

    /**
     * 是否激活（0否 1是）
     */
    private Boolean isActive;

    /**
     * 备注
     */
    private String remark;

    // 关联字段（非数据库字段）
    /**
     * 团队名称
     */
    @TableField(exist = false)
    private String teamName;

    /**
     * 用户名称
     */
    @TableField(exist = false)
    private String userName;

    /**
     * 用户昵称
     */
    @TableField(exist = false)
    private String nickName;

    /**
     * 角色名称
     */
    @TableField(exist = false)
    private String roleName;
}
